package com.platform.modules.mall.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.platform.modules.mall.entity.MallPrizeEntity;
import com.platform.modules.mall.entity.MallUserEntity;

import java.util.List;
import java.util.Map;

/**
 * 奖品表Service接口
 *
 * @author
 * @date 2021-05-26 08:39:03
 */
public interface MallPrizeService extends IService<MallPrizeEntity> {

    MallPrizeEntity runLottery(MallUserEntity user, String categoryId, Integer level);

    /**
     * 随机获取未中奖对象
     *
     * @return
     */
    MallPrizeEntity getLosingPrize(String categoryId);

    /**
     * 获取九宫格 抽奖商品  （后续可以改成通过传入类型获取）
     *
     * @return
     */
    List<MallPrizeEntity> getPrizeList(String categoryId);

    /**
     * 卡券库存数量减少 （默认减少数量：1）
     *
     * @return 是否成功
     */
    boolean PrizeNumberSubtract(String id);

    /**
     * 查询所有列表
     *
     * @param params 查询参数
     * @return List
     */
    List<MallPrizeEntity> queryAll(Map<String, Object> params);

    /**
     * 分页查询奖品表
     *
     * @param params 查询参数
     * @return Page
     */
    Page queryPage(Map<String, Object> params);

    /**
     * 新增奖品表
     *
     * @param mallPrize 奖品表
     * @return 新增结果
     */
    boolean add(MallPrizeEntity mallPrize);

    /**
     * 根据主键更新奖品表
     *
     * @param mallPrize 奖品表
     * @return 更新结果
     */
    boolean update(MallPrizeEntity mallPrize);

    /**
     * 根据主键删除奖品表
     *
     * @param prizeId prizeId
     * @return 删除结果
     */
    boolean delete(String prizeId);

    /**
     * 根据主键批量删除
     *
     * @param prizeIds prizeIds
     * @return 删除结果
     */
    boolean deleteBatch(String[] prizeIds);

}
